package com.zhisheng.demo03_Stream_Hello;


import java.util.*;
import java.util.stream.Stream;


/**
 * 创建者： 智晟全哥
 *
 * 练习获取Stream流的3种方式
 *
 */
public class MyGetStream {
    public static void main(String[] args) {
        //method1();
        method2();
        //method3();
        //method4();
        method5();
    }

    // 练习双列集合获取流
    private static void method5() {
        HashMap<Integer,Integer> map = new HashMap<>();
        map.put(1,1);

        // map本身没有直接获取流的方法,如果需要使用Stream操作,需要先转成单列集合
        System.out.println(map.entrySet().stream().count());

    }

    // 对比Arrays.stream方法和Stream.of方法
    private static void method4() {

        int[] arr = {1,4,7};
        // Arrays.stream将数组中的元素 1,4,7添加到流对象中进行处理了
        System.out.println(Arrays.stream(arr).count());
        // of方法,将arr这个数组整体当成一个数据,添加到Stream流中处理了!!!
        System.out.println(Stream.of(arr).count());

        // 零散数据
        //Arrays.stream(2,5,8);// 无可变参数的方法,必须传递数组
        System.out.println(Stream.of(2, 5, 8).count());


    }

    // 练习从单列集合中获取Stream
    private static void method1() {
        List<String> list = new ArrayList<>();
        Collections.addAll(list,"a","d","bb","c");
        // 获取流中可以处理的数据的数量
        System.out.println(list.stream().count());
    }
    
    // 练习从数组中获取流
    private static void method2() {
        Integer[] arr = {2,5,8};
        // 获取流中可以处理的数据的数量
        System.out.println(Arrays.stream(arr).count());
    }

    // 零散数据获取流
    private static void method3() {
        System.out.println(Stream.of(2, 8).count());
    }
    //


}
